#pragma once

#include "Material.h"
#include "SideUserObject.h"
#include "RandomInterface.h"
#include "ENRadiationHeatFluxUserObject.h"
#include <vector>
using std::vector;

class ENRadiationHeatFluxUserObject;

class ENRadiationHeatFluxMaterial :
		public Material
//		public RandomInterface
{
public:
	ENRadiationHeatFluxMaterial(const InputParameters & parameters);
	~ENRadiationHeatFluxMaterial(){};

protected:
  virtual void computeQpProperties();

  const Elem * & _current_side_elem;

  const VariableValue &_temperature;
  const ENRadiationHeatFluxUserObject & _RadUO;
  MaterialProperty<Real> & _radiation_heat_flux;
  MaterialProperty<Real> & _radiation_heat_flux_jacobi;
  MaterialProperty<Real>& _recieve_radiation_heat_flux;
  MaterialProperty<Real>& _recieve_radiation_heat_flux_jacobi;

};

template<>
InputParameters validParams<ENRadiationHeatFluxMaterial>();
